package com.sxfq.loansupermarket.backsystem.modular.analysis.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.sxfq.loansupermarket.backsystem.modular.analysis.entity.CustomPlatformCountInfo;
import com.sxfq.loansupermarket.backsystem.modular.analysis.entity.PageHomeCount;
import com.sxfq.loansupermarket.backsystem.modular.analysis.entity.PlatFormCount;
import com.sxfq.loansupermarket.backsystem.modular.analysis.entity.RegisterCount;

import java.util.Date;
import java.util.List;

/**
 * @author gaofucheng:
 * @version 2017年8月24日 上午11:08:30 数据统计service
 */
public interface ICountServiceTwo {

	/**
	 * 注册统计数据列表
	 * 
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	List<RegisterCount> selectRegisterCount(String startTime, String endTime);

	/**
	 * 首页各种需求的浏览量
	 * 
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	List<PageHomeCount> selectHomePageCount(String startTime, String endTime);

	/**
	 * 首页各种需求的登录用户浏览量
	 *
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	List<PageHomeCount> selectHomePageLoginCount(String startTime, String endTime);

	/**
	 * 产品统计的数据列表
	 * 
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	List<PlatFormCount> selectPlatformCount(String startTime, String endTime);

	/**
	 * 获取产品统计页面中的注册总量
	 * 
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	Integer getTotalRegister(String startTime, String endTime);

	/**
	 * 获取贷款总浏览量
	 * 
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	Integer getTotalLoanCount(String startTime, String endTime);

	/**
	 * 分页时获取平台统计的数据列表
	 * 
	 * @param page
	 * @param beginTime
	 * @param endTime
	 * @return
	 */
	List<PlatFormCount> selectPageListByQueryGetMap(Page<PlatFormCount> page, String beginTime, String endTime);

	/**
	 * 获取首页banner集合
	 * 
	 * @return
	 */
	Integer getBannerNum();

	/**
	 * 判断是否存在
	 *
	 */
	boolean isExist(String platformId,String buttonId,String starPlatformId,String bannerId,String homePageId,Date date);

	/**
	 * 判断是否存在
	 *
	 */
	boolean isExistCardPage(String platformId,String buttonId,String starPlatformId,String bannerId,String cardPageId,Date date);

	/**
	 * 判断是否存在
	 *
	 */
	boolean isExistLogin(String platformId,String buttonId,String starPlatformId,String bannerId,String homePageId,Date date,String phone);

	/**
	 * 判断是否存在
	 *
	 */
	boolean isExistRegister(String platformId,Date date,String phone);

	/**
	 * 判断是否存在
	 *
	 */
	boolean isExistChannel(String channel);

	/**
	 * 判断是否存在
	 *
	 */
	boolean isExistCardPage(String platformId,String buttonId,String starPlatformId,String bannerId,String homePageId,String cardPageId,Date date,String phone);

	/**
	 * 新增数据
	 * @param
	 * @param date
	 * @return
	 */
	int insertCustomPlatformCountInfo(String platformId,String buttonId,String starPlatformId,String bannerId,String cardPageId ,Date date,Integer stuts);

	/**
	 * 新增登录用户数据
	 * @param date
	 * @return
	 */
	int insertLoginCustomPlatformCountInfo(String platformId,String buttonId,String starPlatformId,String bannerId,String homePageId ,Date date,Integer stuts,String phone);


	/**
	 * 新增注册用户当天访问记录数据
	 * @param date
	 * @return
	 */
	int insertRegisterCustomPlatformCountInfo(String platformId,Date date,Integer stuts,String phone,Integer channel);

	/**
	 * 新增登录用户数据
	 * @param date
	 * @return
	 */
	int insertLoginCustomCardCountInfo(String platformId,String buttonId,String starPlatformId,String bannerId,String homePageId ,String cardPageId,Date date,Integer stuts,String phone);

	/**
	 * 更新当天浏览量或点击总数
	 * @param
	 * @param date
	 * @return
	 */
	int updateCount(String platformId,String buttonId,String starPlatformId,String bannerId,String homePageId ,Date date,Integer stuts);

	/**
	 * 更新当天浏览量或点击总数
	 * @param
	 * @param date
	 * @return
	 */
	int updateCardPageCount(String platformId,String buttonId,String starPlatformId,String bannerId,String homePageId ,Date date,Integer stuts);


	/**
	 * 更新当天登录用户浏览量或点击总数
	 * @param date
	 * @return
	 */
	int updateLoginCount(String platformId,String buttonId,String starPlatformId,String bannerId,String homePageId ,Date date,Integer stuts);

	/**
	 * 根据条件查询列表
	 * @param
	 * @param date 当天日期
	 * @return
	 */
	CustomPlatformCountInfo selectCustomPlatformCountInfo(String platformId, String buttonId, String starPlatformId, String bannerId, String homePageId, Date date);
}
